home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swags_z.zip
/
TEXTWNDW.SWG
/
0013_Small Window Unit.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-05-26
|
3KB
|
179 lines
unit windows;
interface
uses crt;
procedure sh;
procedure sn;
procedure Drawbox(x1,y1,x2,y2: byte);
procedure PopWindow(x1,y1,x2,y2: byte);
procedure CloseWindow;
procedure Drawshadowbox(x1,y1,x2,y2: byte);
procedure shh;
procedure snn;
const
color: boolean = true;
type
windowtype = record
x1,x2,y1,y2: byte;
scrsave: array[1..4096] of byte;
end;
scrarray= array[1..4096] of byte;
scrptr= ^scrarray;
const
screenbase: word =$B800;
var
numwindows: byte;
ws: array[1..3] of windowtype;
cursorpos: integer;
fileabs: array[1..20] of word;
searchdir: byte;
searchwild: string;
searchdate: string;
searchuploader: string;
searchsize: longint;
searchtext: string;
numindex: word;
sortprimary,sortsecondary: byte;
filelow: longint;
numentries: byte;
procedure textcolor(i: byte);
procedure textbackground(i: byte);
implementation
procedure Textcolor(i: byte);
begin;
if color then crt.textcolor(i) else begin;
case i of
0: crt.textcolor(0);
7: crt.textcolor(7);
11..15: crt.textcolor(15);
end;
end;
end;
procedure TextBackGround(i: byte);
begin;
if color then crt.textbackground(i) else begin;
case i of
0..6: crt.textbackground(0);
7: crt.textbackground(7);
end;
end;
end;
procedure sh;
begin;
if color then begin;
textcolor(blue);
textbackground(7);
end else begin;
textcolor(0);
textbackground(7);
end;
end;
procedure sn;
begin;
textcolor(white);
textbackground(blue);
end;
procedure Drawbox(x1,y1,x2,y2: byte);
var
x,y: byte;
begin;
gotoxy(x1,y1);
for x:=x1+1 to x2 do write('═');
gotoxy(x1,y2);
for x:=x1+1 to x2 do write('═');
for y:=y1+1 to y2-1 do begin;
gotoxy(x1,y);
write('│');
gotoxy(x2,y);
write('│');
end;
gotoxy(x1,y1);
write('╒');
gotoxy(x2,y1);
write('╕');
gotoxy(x1,y2);
write('╘');
gotoxy(x2,y2);
write('╛');
end;
procedure PopWindow(x1,y1,x2,y2: byte);
begin;
inc(numwindows);
ws[numwindows].x1:=lo(windmin)+1;
ws[numwindows].x2:=lo(windmax)+1;
ws[numwindows].y1:=hi(windmin)+1;
ws[numwindows].y2:=hi(windmax)+1;
move(mem[screenbase:0000],ws[numwindows].scrsave,4096);
window(1,1,80,25);
drawbox(x1,y1,x2,y2);
window(x1+1,y1+1,x2-1,y2-1);
end;
procedure CloseWindow;
begin;
move(ws[numwindows].scrsave,mem[screenbase:0000],4096);
window(ws[numwindows].x1,ws[numwindows].y1,ws[numwindows].x2,ws[numwindows].y2);
dec(numwindows);
end;
procedure Drawshadowbox(x1,y1,x2,y2: byte);
var
x,y: byte;
begin;
textbackground(0);
textcolor(7);
gotoxy(x1,y1);
for x:=x1+1 to x2 do write('═');
gotoxy(x1,y2);
for x:=x1+1 to x2 do write('═');
for y:=y1+1 to y2-1 do begin;
gotoxy(x1,y);
write('│');
gotoxy(x2,y);
write('│');
end;
gotoxy(x1,y1);
write('╒');
gotoxy(x2,y1);
write('╕');
gotoxy(x1,y2);
write('╘');
gotoxy(x2,y2);
write('╛');
textcolor(7);
textbackground(0);
for y:=y1+1 to y2+1 do begin;
gotoxy(x2+1,y);
write(' ');
end;
for x:=x1+1 to x2+1 do begin;
gotoxy(x,y2+1);
write(' ');
end;
end;
procedure shh;
begin;
textcolor(0);
textbackground(7);
end;
procedure snn;
begin;
textcolor(7);
textbackground(0);
end;
end.